The present invention relates to figure generating systems for image processors, and more particularly to a perspective projection calculation device and method for correcting geometrical parameters of a perspectively projected three-dimensional figure.
When a perspectively projected figure, for example a triangle, is shaded, linear interpolation is generally performed for each span, using the respective vertex coordinates of a perspectively projected triangle, and geometrical parameters necessary and sufficient for shading are approximately calculated for the respective points within the perspectively projected triangle.
In order to prevent reality based on perspective projection from being impaired, secondary interpolation is performed for each span, using the vertex coordinates of the perspectively projected triangle and geometrical parameters necessary and sufficient for shading are approximately calculated for the respective points within the perspectively projected triangle.
For example, JP-A-3-198172 discloses a method of calculating geometrical parameters necessary and sufficient for shading on a plane figure in a three-dimensional space without interpolation for each span, but no specified method of calculating interpolation coefficients used for the interpolation.
A known method of interpolation for each plane is disclosed in Juan Pineda: "A Parallel Algorithm for Polygon Rasterization", Computer Graphics, Vol. 22, No. 4, August 1988, pp. 17-20. However, this method does not refer to processing of a perspectively projected figure.
In the above prior art, when interpolation coefficients necessary for interpolation are calculated for each span interpolation, calculations including division are required for each span. In addition, when geometrical parameters to be interpolated are different even in the interpolation for the same span, calculations including division for the interpolation coefficients are required for the respective parameters.
The effects of the perspective projection in the prior art are inaccurate and approximate.